Skip to content

2.8 手动搭建分层

推荐使用脚手架Furion 官方提供了非常灵活方便的脚手架,可以快速的创建多层架构项目。

推荐使用 《2.7 官方脚手架》代替本章节功能。

2.8.1 推荐分层设计

Furion 推荐采用多层项目设计架构,每一个项目层的依赖分别是:

  • YourName.Application:添加 YourName.Core 引用
  • YourName.Core:添加 Furion 引用SqlSugar 版本添加 Furion.Pure 🎗
  • YourName.Database.Migrations:添加 YourName.EntityFramework.Core 引用
  • YourName.EntityFramework.Core:添加 YourName.Core 引用
  • YourName.Web.Core:添加 YourName.ApplicationYourName.Database.Migrations 引用
  • YourName.Web.Entry:添加 YourName.Web.Core 引用 和 Microsoft.EntityFrameworkCore.Tools

特别说明如果采用 EFCore 以外的 ORM 框架,如 SqlSugar,那么无需创建 YourName.Database.MigrationsYourName.EntityFramework.Core 层。

另外 YourName.Web.Entry 无需引用 Microsoft.EntityFrameworkCore.Tools 包。

2.8.2 集成 Furion 功能

项目搭建好之后,集成 Furion 框架只需要在 Program.cs 中 添加 Inject() 方法即可:

  • .NET5 版本:
using Microsoft.AspNetCore.Hosting;  
using Microsoft.Extensions.Hosting;  

namespace YourName.Web.Entry  
{  
    public class Program  
    {  
        public static void Main(string[] args)  
        {  
            CreateHostBuilder(args).Build().Run();  
        }  

        public static IHostBuilder CreateHostBuilder(string[] args)  
        {  
            return Host.CreateDefaultBuilder(args)  
                .ConfigureWebHostDefaults(webBuilder =>  
                {  
                    webBuilder.Inject()  
                              .UseStartup<Startup>();  
                });  
        }  
    }  
}  

  • .NET6 版本
var builder = WebApplication.CreateBuilder(args).Inject();  

builder.Services.AddControllers().AddInject();  

var app = builder.Build();  

app.UseHttpsRedirection();  

app.UseAuthorization();  

app.UseInject();  

app.MapControllers();  

app.Run();  

2.8.3 反馈与建议

与我们交流给 Furion 提 Issue